﻿using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCS_Service.DomianService.Models;
using WCS_Service.Enums;

namespace WCS_Service.DomianService.Interface
{
    public interface IAGVDomainService : IAutoEquipmentDomainService
    {
        event Func<Task> agvArriveCharge;
        event Func<string,string,Task> agvOverTimeChange;
        event Func<string,string, Task> agvContinueChange;
        event Func<ManageAgvModel, Task> agvAbnormalChange;

        Task UpdateAgvInfoAsync(List<AgvInfoModel> infos, string site);

        Task UpdateAgvPeripheralAsync(string type,object para);

        Task<ManageAgvModel> QueryAgvInfoBaseEqCodeAsync(string eqCode);
        Task AgvEqCodeUpdate(string eqCode);

        Task AddWaitAgvAsync(string agvCode, AgvWaitInfoModel waitType);

        Task<List<ManageAgvModel>> QueryAllAgvInfoBaseAsync();
    }
}
